package Proxy;

//https://blog.csdn.net/yhl_jxy/article/details/80635012
//1）当Bean实现接口时，Spring就会用JDK的动态代理。
//2）当Bean没有实现接口时，Spring使用CGlib是实现。
//3）可以强制使用CGlib（在spring配置中加入<aop:aspectj-autoproxy proxy-target-class="true"/>）。
//版权声明：本文为CSDN博主「街灯下的小草」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。
//原文链接：https://blog.csdn.net/yhl_jxy/article/details/80635012
//
//1、JDK动态代理 利用拦截器(拦截器必须实现InvocationHanlder)加上反射机制生成一个实现代理接口的匿名类，在调用具体方法前调用InvokeHandler来处理。
//2、CGLIB动态代理 利用ASM开源包，对代理对象类的class文件加载进来，通过修改其字节码生成子类来处理。
/**
 * 用户管理接口(真实主题和代理主题的共同接口，这样在任何可以使用真实主题的地方都可以使用代理主题代理。)
 * --被代理接口定义
 */
public interface IUserManager {
    void addUser(String id, String password);
}
